{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"\n",
    "特征选择\n",
    "    Filter过滤式\n",
    "        方差选择法:低方差特征过滤\n",
    "        相关系数:特征与特征之间得相关程度\n",
    "     Embeded嵌入式\n",
    "         决策树\n",
    "         正则化\n",
    "         深度学习\n",
    "         \n",
    "低方差特征过滤\n",
    "    特征方差小:某个特征大多样本得值比较相近\n",
    "    特征方差大:某个特征很多样本得值都有差别\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<img src=\"1-06.png\">\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%html\n",
    "<img src=\"1-06.png\">"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "from sklearn.feature_selection import  VarianceThreshold\n",
    "\n",
    "\"\"\"\n",
    "低方差特征过滤\n",
    "\"\"\"\n",
    "data = pd.read_csv(\"factor_returns.csv\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>pe_ratio</th>\n",
       "      <th>pb_ratio</th>\n",
       "      <th>market_cap</th>\n",
       "      <th>return_on_asset_net_profit</th>\n",
       "      <th>du_return_on_equity</th>\n",
       "      <th>ev</th>\n",
       "      <th>earnings_per_share</th>\n",
       "      <th>revenue</th>\n",
       "      <th>total_expense</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5.9572</td>\n",
       "      <td>1.1818</td>\n",
       "      <td>8.525255e+10</td>\n",
       "      <td>0.8008</td>\n",
       "      <td>14.9403</td>\n",
       "      <td>1.211445e+12</td>\n",
       "      <td>2.0100</td>\n",
       "      <td>2.070140e+10</td>\n",
       "      <td>1.088254e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7.0289</td>\n",
       "      <td>1.5880</td>\n",
       "      <td>8.411336e+10</td>\n",
       "      <td>1.6463</td>\n",
       "      <td>7.8656</td>\n",
       "      <td>3.002521e+11</td>\n",
       "      <td>0.3260</td>\n",
       "      <td>2.930837e+10</td>\n",
       "      <td>2.378348e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-262.7461</td>\n",
       "      <td>7.0003</td>\n",
       "      <td>5.170455e+08</td>\n",
       "      <td>-0.5678</td>\n",
       "      <td>-0.5943</td>\n",
       "      <td>7.705178e+08</td>\n",
       "      <td>-0.0060</td>\n",
       "      <td>1.167983e+07</td>\n",
       "      <td>1.203008e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>16.4760</td>\n",
       "      <td>3.7146</td>\n",
       "      <td>1.968046e+10</td>\n",
       "      <td>5.6036</td>\n",
       "      <td>14.6170</td>\n",
       "      <td>2.800916e+10</td>\n",
       "      <td>0.3500</td>\n",
       "      <td>9.189387e+09</td>\n",
       "      <td>7.935543e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>12.5878</td>\n",
       "      <td>2.5616</td>\n",
       "      <td>4.172721e+10</td>\n",
       "      <td>2.8729</td>\n",
       "      <td>10.9097</td>\n",
       "      <td>8.124738e+10</td>\n",
       "      <td>0.2710</td>\n",
       "      <td>8.951453e+09</td>\n",
       "      <td>7.091398e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>10.7960</td>\n",
       "      <td>1.5220</td>\n",
       "      <td>1.720672e+10</td>\n",
       "      <td>2.2450</td>\n",
       "      <td>7.7394</td>\n",
       "      <td>6.603403e+10</td>\n",
       "      <td>0.0974</td>\n",
       "      <td>4.388376e+10</td>\n",
       "      <td>4.309226e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>8.1032</td>\n",
       "      <td>1.0078</td>\n",
       "      <td>1.825329e+10</td>\n",
       "      <td>3.2233</td>\n",
       "      <td>10.3965</td>\n",
       "      <td>5.651179e+10</td>\n",
       "      <td>0.6000</td>\n",
       "      <td>7.303544e+09</td>\n",
       "      <td>5.440678e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>192.5234</td>\n",
       "      <td>18.3692</td>\n",
       "      <td>4.270450e+09</td>\n",
       "      <td>-0.6423</td>\n",
       "      <td>-1.0375</td>\n",
       "      <td>4.363236e+09</td>\n",
       "      <td>-0.0059</td>\n",
       "      <td>6.263080e+07</td>\n",
       "      <td>6.478477e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>18.0444</td>\n",
       "      <td>1.2301</td>\n",
       "      <td>8.699265e+09</td>\n",
       "      <td>1.8112</td>\n",
       "      <td>3.7845</td>\n",
       "      <td>2.184636e+10</td>\n",
       "      <td>0.3197</td>\n",
       "      <td>1.466188e+09</td>\n",
       "      <td>1.036862e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>23.3689</td>\n",
       "      <td>7.7135</td>\n",
       "      <td>2.640939e+10</td>\n",
       "      <td>16.1098</td>\n",
       "      <td>20.7633</td>\n",
       "      <td>2.789761e+10</td>\n",
       "      <td>0.9372</td>\n",
       "      <td>1.862916e+09</td>\n",
       "      <td>1.157644e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>8.6344</td>\n",
       "      <td>2.1796</td>\n",
       "      <td>3.300413e+10</td>\n",
       "      <td>9.9592</td>\n",
       "      <td>21.1151</td>\n",
       "      <td>5.384610e+10</td>\n",
       "      <td>1.3700</td>\n",
       "      <td>2.523304e+10</td>\n",
       "      <td>2.195510e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>226.9945</td>\n",
       "      <td>4.3887</td>\n",
       "      <td>5.410910e+09</td>\n",
       "      <td>0.1796</td>\n",
       "      <td>0.3275</td>\n",
       "      <td>6.249918e+09</td>\n",
       "      <td>0.0045</td>\n",
       "      <td>9.969418e+07</td>\n",
       "      <td>1.353823e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>22.6896</td>\n",
       "      <td>6.1087</td>\n",
       "      <td>3.393575e+10</td>\n",
       "      <td>10.2038</td>\n",
       "      <td>17.8649</td>\n",
       "      <td>4.307166e+10</td>\n",
       "      <td>1.2400</td>\n",
       "      <td>7.741652e+09</td>\n",
       "      <td>6.769161e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>17.6816</td>\n",
       "      <td>4.0655</td>\n",
       "      <td>8.759864e+09</td>\n",
       "      <td>2.3934</td>\n",
       "      <td>17.6640</td>\n",
       "      <td>2.246767e+10</td>\n",
       "      <td>0.2538</td>\n",
       "      <td>2.004355e+09</td>\n",
       "      <td>1.749637e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>18.3311</td>\n",
       "      <td>2.3941</td>\n",
       "      <td>9.256861e+09</td>\n",
       "      <td>4.7469</td>\n",
       "      <td>9.2005</td>\n",
       "      <td>1.462845e+10</td>\n",
       "      <td>0.2170</td>\n",
       "      <td>6.200943e+09</td>\n",
       "      <td>5.822510e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>14.3531</td>\n",
       "      <td>7.2173</td>\n",
       "      <td>5.174023e+10</td>\n",
       "      <td>24.1712</td>\n",
       "      <td>34.1465</td>\n",
       "      <td>5.657357e+10</td>\n",
       "      <td>1.4400</td>\n",
       "      <td>5.628272e+09</td>\n",
       "      <td>2.856714e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>5.6704</td>\n",
       "      <td>1.7148</td>\n",
       "      <td>1.546002e+10</td>\n",
       "      <td>20.7774</td>\n",
       "      <td>23.1428</td>\n",
       "      <td>1.880408e+10</td>\n",
       "      <td>2.7168</td>\n",
       "      <td>8.094817e+08</td>\n",
       "      <td>6.909116e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>-203.3888</td>\n",
       "      <td>1.3678</td>\n",
       "      <td>2.015979e+10</td>\n",
       "      <td>2.7517</td>\n",
       "      <td>7.0257</td>\n",
       "      <td>3.721716e+10</td>\n",
       "      <td>0.1900</td>\n",
       "      <td>1.960655e+10</td>\n",
       "      <td>2.000223e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>-16.8256</td>\n",
       "      <td>2.8326</td>\n",
       "      <td>3.898339e+09</td>\n",
       "      <td>-2.7280</td>\n",
       "      <td>-3.1988</td>\n",
       "      <td>5.262950e+09</td>\n",
       "      <td>-0.0360</td>\n",
       "      <td>7.971350e+08</td>\n",
       "      <td>8.324849e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>14.5249</td>\n",
       "      <td>2.8490</td>\n",
       "      <td>2.844635e+10</td>\n",
       "      <td>3.2688</td>\n",
       "      <td>12.3670</td>\n",
       "      <td>4.926185e+10</td>\n",
       "      <td>0.7400</td>\n",
       "      <td>5.203284e+10</td>\n",
       "      <td>5.089869e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>8.8321</td>\n",
       "      <td>3.1092</td>\n",
       "      <td>5.474315e+10</td>\n",
       "      <td>4.9914</td>\n",
       "      <td>25.6552</td>\n",
       "      <td>1.250695e+11</td>\n",
       "      <td>1.3388</td>\n",
       "      <td>6.407461e+10</td>\n",
       "      <td>6.115836e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>54.5916</td>\n",
       "      <td>1.7354</td>\n",
       "      <td>3.484036e+09</td>\n",
       "      <td>0.8814</td>\n",
       "      <td>5.9695</td>\n",
       "      <td>1.176176e+10</td>\n",
       "      <td>0.1900</td>\n",
       "      <td>1.828170e+09</td>\n",
       "      <td>1.706704e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>-10.5648</td>\n",
       "      <td>2.8650</td>\n",
       "      <td>8.771367e+09</td>\n",
       "      <td>-0.1107</td>\n",
       "      <td>-0.5469</td>\n",
       "      <td>2.076518e+10</td>\n",
       "      <td>-0.0300</td>\n",
       "      <td>6.775925e+08</td>\n",
       "      <td>7.178339e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>30.7015</td>\n",
       "      <td>0.7431</td>\n",
       "      <td>3.174962e+10</td>\n",
       "      <td>0.8678</td>\n",
       "      <td>2.8371</td>\n",
       "      <td>9.980410e+10</td>\n",
       "      <td>0.1500</td>\n",
       "      <td>1.077702e+11</td>\n",
       "      <td>1.064462e+11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>83.1601</td>\n",
       "      <td>5.1914</td>\n",
       "      <td>2.447174e+09</td>\n",
       "      <td>3.7628</td>\n",
       "      <td>6.7973</td>\n",
       "      <td>2.643903e+09</td>\n",
       "      <td>0.2300</td>\n",
       "      <td>1.211364e+09</td>\n",
       "      <td>1.164179e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>7.8303</td>\n",
       "      <td>0.9565</td>\n",
       "      <td>2.447399e+10</td>\n",
       "      <td>-3.8791</td>\n",
       "      <td>-8.9859</td>\n",
       "      <td>5.997285e+10</td>\n",
       "      <td>-0.1600</td>\n",
       "      <td>8.514637e+09</td>\n",
       "      <td>1.092820e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>89.0694</td>\n",
       "      <td>1.2107</td>\n",
       "      <td>1.785367e+10</td>\n",
       "      <td>1.9189</td>\n",
       "      <td>3.0930</td>\n",
       "      <td>2.758447e+10</td>\n",
       "      <td>0.2311</td>\n",
       "      <td>1.315053e+09</td>\n",
       "      <td>7.590626e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>48.6018</td>\n",
       "      <td>3.7755</td>\n",
       "      <td>9.352958e+09</td>\n",
       "      <td>3.2868</td>\n",
       "      <td>5.6005</td>\n",
       "      <td>1.209052e+10</td>\n",
       "      <td>0.1412</td>\n",
       "      <td>1.350950e+09</td>\n",
       "      <td>1.208451e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>-25.6794</td>\n",
       "      <td>3.0579</td>\n",
       "      <td>7.848748e+09</td>\n",
       "      <td>1.0709</td>\n",
       "      <td>1.2462</td>\n",
       "      <td>2.029325e+10</td>\n",
       "      <td>0.0500</td>\n",
       "      <td>8.460434e+08</td>\n",
       "      <td>7.702186e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>-147.1629</td>\n",
       "      <td>2.0306</td>\n",
       "      <td>1.910244e+10</td>\n",
       "      <td>0.1931</td>\n",
       "      <td>0.3771</td>\n",
       "      <td>3.216635e+10</td>\n",
       "      <td>0.0142</td>\n",
       "      <td>5.081889e+09</td>\n",
       "      <td>5.059580e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2288</th>\n",
       "      <td>40.8656</td>\n",
       "      <td>2.6827</td>\n",
       "      <td>1.103738e+10</td>\n",
       "      <td>2.1550</td>\n",
       "      <td>4.7236</td>\n",
       "      <td>1.709767e+10</td>\n",
       "      <td>0.1800</td>\n",
       "      <td>4.807351e+09</td>\n",
       "      <td>4.591748e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2289</th>\n",
       "      <td>16.3415</td>\n",
       "      <td>1.5508</td>\n",
       "      <td>9.477980e+09</td>\n",
       "      <td>0.9668</td>\n",
       "      <td>2.4190</td>\n",
       "      <td>2.099918e+10</td>\n",
       "      <td>0.1000</td>\n",
       "      <td>9.909288e+08</td>\n",
       "      <td>1.012814e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2290</th>\n",
       "      <td>10.4802</td>\n",
       "      <td>1.4497</td>\n",
       "      <td>1.049400e+11</td>\n",
       "      <td>5.4443</td>\n",
       "      <td>12.2884</td>\n",
       "      <td>1.902480e+11</td>\n",
       "      <td>0.5237</td>\n",
       "      <td>2.003511e+10</td>\n",
       "      <td>1.091727e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2291</th>\n",
       "      <td>28.2384</td>\n",
       "      <td>1.5721</td>\n",
       "      <td>3.864052e+10</td>\n",
       "      <td>1.6908</td>\n",
       "      <td>4.8682</td>\n",
       "      <td>9.582884e+10</td>\n",
       "      <td>0.2611</td>\n",
       "      <td>3.586083e+09</td>\n",
       "      <td>2.121595e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2292</th>\n",
       "      <td>8.3254</td>\n",
       "      <td>1.4238</td>\n",
       "      <td>9.366079e+10</td>\n",
       "      <td>9.2317</td>\n",
       "      <td>13.6114</td>\n",
       "      <td>1.184101e+11</td>\n",
       "      <td>0.5900</td>\n",
       "      <td>3.347880e+10</td>\n",
       "      <td>2.365943e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2293</th>\n",
       "      <td>5.8835</td>\n",
       "      <td>0.9565</td>\n",
       "      <td>2.256389e+10</td>\n",
       "      <td>0.9741</td>\n",
       "      <td>13.0935</td>\n",
       "      <td>3.298547e+11</td>\n",
       "      <td>1.0000</td>\n",
       "      <td>6.807475e+09</td>\n",
       "      <td>3.173200e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2294</th>\n",
       "      <td>51.8412</td>\n",
       "      <td>1.0986</td>\n",
       "      <td>3.241914e+09</td>\n",
       "      <td>0.3984</td>\n",
       "      <td>0.6477</td>\n",
       "      <td>5.554566e+09</td>\n",
       "      <td>0.0300</td>\n",
       "      <td>1.211764e+09</td>\n",
       "      <td>1.232360e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2295</th>\n",
       "      <td>11.1287</td>\n",
       "      <td>1.1820</td>\n",
       "      <td>3.136000e+10</td>\n",
       "      <td>6.5060</td>\n",
       "      <td>8.6546</td>\n",
       "      <td>4.024084e+10</td>\n",
       "      <td>0.1700</td>\n",
       "      <td>5.833988e+09</td>\n",
       "      <td>3.951208e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2296</th>\n",
       "      <td>185.9003</td>\n",
       "      <td>3.8403</td>\n",
       "      <td>7.954031e+09</td>\n",
       "      <td>0.1718</td>\n",
       "      <td>0.3902</td>\n",
       "      <td>1.199231e+10</td>\n",
       "      <td>0.0050</td>\n",
       "      <td>3.497481e+08</td>\n",
       "      <td>3.150987e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2297</th>\n",
       "      <td>11.2160</td>\n",
       "      <td>2.0451</td>\n",
       "      <td>3.492564e+10</td>\n",
       "      <td>4.3066</td>\n",
       "      <td>13.0096</td>\n",
       "      <td>7.009119e+10</td>\n",
       "      <td>0.4300</td>\n",
       "      <td>3.910035e+10</td>\n",
       "      <td>3.654896e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2298</th>\n",
       "      <td>68.1832</td>\n",
       "      <td>2.0664</td>\n",
       "      <td>1.859444e+10</td>\n",
       "      <td>2.0794</td>\n",
       "      <td>2.4527</td>\n",
       "      <td>2.523459e+10</td>\n",
       "      <td>0.0600</td>\n",
       "      <td>7.246929e+09</td>\n",
       "      <td>7.032199e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2299</th>\n",
       "      <td>4.1307</td>\n",
       "      <td>0.9983</td>\n",
       "      <td>1.365560e+11</td>\n",
       "      <td>0.9858</td>\n",
       "      <td>20.8150</td>\n",
       "      <td>2.940780e+12</td>\n",
       "      <td>1.6300</td>\n",
       "      <td>6.352200e+10</td>\n",
       "      <td>2.854800e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2300</th>\n",
       "      <td>5.6856</td>\n",
       "      <td>0.9048</td>\n",
       "      <td>6.336115e+10</td>\n",
       "      <td>0.9619</td>\n",
       "      <td>16.5592</td>\n",
       "      <td>1.107488e+12</td>\n",
       "      <td>1.1900</td>\n",
       "      <td>2.036172e+10</td>\n",
       "      <td>7.688770e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2301</th>\n",
       "      <td>15.6061</td>\n",
       "      <td>1.2347</td>\n",
       "      <td>6.502400e+09</td>\n",
       "      <td>4.2274</td>\n",
       "      <td>6.1919</td>\n",
       "      <td>1.057695e+10</td>\n",
       "      <td>0.2485</td>\n",
       "      <td>2.699640e+09</td>\n",
       "      <td>2.309055e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2302</th>\n",
       "      <td>45.4442</td>\n",
       "      <td>2.4167</td>\n",
       "      <td>2.015200e+10</td>\n",
       "      <td>2.3701</td>\n",
       "      <td>4.9005</td>\n",
       "      <td>3.307286e+10</td>\n",
       "      <td>0.1900</td>\n",
       "      <td>1.926169e+09</td>\n",
       "      <td>1.303996e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2303</th>\n",
       "      <td>56.2462</td>\n",
       "      <td>1.7449</td>\n",
       "      <td>1.292000e+10</td>\n",
       "      <td>1.5410</td>\n",
       "      <td>3.0744</td>\n",
       "      <td>2.384706e+10</td>\n",
       "      <td>0.1100</td>\n",
       "      <td>9.885376e+08</td>\n",
       "      <td>7.196078e+08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2304</th>\n",
       "      <td>10.4850</td>\n",
       "      <td>1.2829</td>\n",
       "      <td>9.124200e+09</td>\n",
       "      <td>3.4474</td>\n",
       "      <td>9.6124</td>\n",
       "      <td>1.977319e+10</td>\n",
       "      <td>0.2200</td>\n",
       "      <td>4.877658e+09</td>\n",
       "      <td>4.366540e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2305</th>\n",
       "      <td>6.3967</td>\n",
       "      <td>0.9710</td>\n",
       "      <td>9.360000e+10</td>\n",
       "      <td>2.6959</td>\n",
       "      <td>11.4862</td>\n",
       "      <td>5.459076e+11</td>\n",
       "      <td>0.3600</td>\n",
       "      <td>3.939264e+11</td>\n",
       "      <td>3.759061e+11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2306</th>\n",
       "      <td>7.7767</td>\n",
       "      <td>1.0222</td>\n",
       "      <td>3.052800e+10</td>\n",
       "      <td>1.7877</td>\n",
       "      <td>10.0869</td>\n",
       "      <td>1.738639e+11</td>\n",
       "      <td>0.3001</td>\n",
       "      <td>8.830155e+10</td>\n",
       "      <td>8.470008e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2307</th>\n",
       "      <td>23.6462</td>\n",
       "      <td>1.4041</td>\n",
       "      <td>4.250400e+10</td>\n",
       "      <td>1.7129</td>\n",
       "      <td>4.0172</td>\n",
       "      <td>9.416246e+10</td>\n",
       "      <td>0.2400</td>\n",
       "      <td>4.512502e+09</td>\n",
       "      <td>2.796546e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2308</th>\n",
       "      <td>15.4099</td>\n",
       "      <td>1.0875</td>\n",
       "      <td>1.068389e+10</td>\n",
       "      <td>3.8366</td>\n",
       "      <td>6.3517</td>\n",
       "      <td>1.763364e+10</td>\n",
       "      <td>0.1577</td>\n",
       "      <td>2.164358e+10</td>\n",
       "      <td>2.095985e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2309</th>\n",
       "      <td>30.8968</td>\n",
       "      <td>1.6511</td>\n",
       "      <td>3.486360e+10</td>\n",
       "      <td>2.0802</td>\n",
       "      <td>4.4486</td>\n",
       "      <td>7.087203e+10</td>\n",
       "      <td>0.2800</td>\n",
       "      <td>2.841977e+09</td>\n",
       "      <td>1.682115e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2310</th>\n",
       "      <td>4.5419</td>\n",
       "      <td>0.9527</td>\n",
       "      <td>1.043218e+11</td>\n",
       "      <td>0.9647</td>\n",
       "      <td>18.4875</td>\n",
       "      <td>2.206194e+12</td>\n",
       "      <td>0.4700</td>\n",
       "      <td>4.437800e+10</td>\n",
       "      <td>1.909800e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2311</th>\n",
       "      <td>363.8465</td>\n",
       "      <td>0.8932</td>\n",
       "      <td>1.099975e+10</td>\n",
       "      <td>0.3653</td>\n",
       "      <td>0.6250</td>\n",
       "      <td>1.855021e+10</td>\n",
       "      <td>0.0169</td>\n",
       "      <td>2.217780e+09</td>\n",
       "      <td>2.194909e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2312</th>\n",
       "      <td>14.2327</td>\n",
       "      <td>3.7462</td>\n",
       "      <td>1.611015e+10</td>\n",
       "      <td>10.7319</td>\n",
       "      <td>19.8905</td>\n",
       "      <td>1.930740e+10</td>\n",
       "      <td>0.9100</td>\n",
       "      <td>7.766650e+09</td>\n",
       "      <td>6.564619e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2313</th>\n",
       "      <td>25.0848</td>\n",
       "      <td>4.2323</td>\n",
       "      <td>2.274800e+10</td>\n",
       "      <td>10.7833</td>\n",
       "      <td>15.4895</td>\n",
       "      <td>2.784450e+10</td>\n",
       "      <td>0.8849</td>\n",
       "      <td>1.148170e+10</td>\n",
       "      <td>1.041419e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2314</th>\n",
       "      <td>59.4849</td>\n",
       "      <td>1.6392</td>\n",
       "      <td>2.281400e+10</td>\n",
       "      <td>1.2960</td>\n",
       "      <td>2.4512</td>\n",
       "      <td>3.810122e+10</td>\n",
       "      <td>0.0900</td>\n",
       "      <td>1.731713e+09</td>\n",
       "      <td>1.089783e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2315</th>\n",
       "      <td>39.5523</td>\n",
       "      <td>4.0052</td>\n",
       "      <td>1.702434e+10</td>\n",
       "      <td>3.3440</td>\n",
       "      <td>8.0679</td>\n",
       "      <td>2.420817e+10</td>\n",
       "      <td>0.2200</td>\n",
       "      <td>1.789082e+10</td>\n",
       "      <td>1.749295e+10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2316</th>\n",
       "      <td>52.5408</td>\n",
       "      <td>2.4646</td>\n",
       "      <td>3.287910e+10</td>\n",
       "      <td>2.7444</td>\n",
       "      <td>2.9202</td>\n",
       "      <td>3.883803e+10</td>\n",
       "      <td>0.1210</td>\n",
       "      <td>6.465392e+09</td>\n",
       "      <td>6.009007e+09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2317</th>\n",
       "      <td>14.2203</td>\n",
       "      <td>1.4103</td>\n",
       "      <td>5.911086e+10</td>\n",
       "      <td>2.0383</td>\n",
       "      <td>8.6179</td>\n",
       "      <td>2.020661e+11</td>\n",
       "      <td>0.2470</td>\n",
       "      <td>4.509872e+10</td>\n",
       "      <td>4.132842e+10</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>2318 rows × 9 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      pe_ratio  pb_ratio    market_cap  return_on_asset_net_profit  \\\n",
       "0       5.9572    1.1818  8.525255e+10                      0.8008   \n",
       "1       7.0289    1.5880  8.411336e+10                      1.6463   \n",
       "2    -262.7461    7.0003  5.170455e+08                     -0.5678   \n",
       "3      16.4760    3.7146  1.968046e+10                      5.6036   \n",
       "4      12.5878    2.5616  4.172721e+10                      2.8729   \n",
       "5      10.7960    1.5220  1.720672e+10                      2.2450   \n",
       "6       8.1032    1.0078  1.825329e+10                      3.2233   \n",
       "7     192.5234   18.3692  4.270450e+09                     -0.6423   \n",
       "8      18.0444    1.2301  8.699265e+09                      1.8112   \n",
       "9      23.3689    7.7135  2.640939e+10                     16.1098   \n",
       "10      8.6344    2.1796  3.300413e+10                      9.9592   \n",
       "11    226.9945    4.3887  5.410910e+09                      0.1796   \n",
       "12     22.6896    6.1087  3.393575e+10                     10.2038   \n",
       "13     17.6816    4.0655  8.759864e+09                      2.3934   \n",
       "14     18.3311    2.3941  9.256861e+09                      4.7469   \n",
       "15     14.3531    7.2173  5.174023e+10                     24.1712   \n",
       "16      5.6704    1.7148  1.546002e+10                     20.7774   \n",
       "17   -203.3888    1.3678  2.015979e+10                      2.7517   \n",
       "18    -16.8256    2.8326  3.898339e+09                     -2.7280   \n",
       "19     14.5249    2.8490  2.844635e+10                      3.2688   \n",
       "20      8.8321    3.1092  5.474315e+10                      4.9914   \n",
       "21     54.5916    1.7354  3.484036e+09                      0.8814   \n",
       "22    -10.5648    2.8650  8.771367e+09                     -0.1107   \n",
       "23     30.7015    0.7431  3.174962e+10                      0.8678   \n",
       "24     83.1601    5.1914  2.447174e+09                      3.7628   \n",
       "25      7.8303    0.9565  2.447399e+10                     -3.8791   \n",
       "26     89.0694    1.2107  1.785367e+10                      1.9189   \n",
       "27     48.6018    3.7755  9.352958e+09                      3.2868   \n",
       "28    -25.6794    3.0579  7.848748e+09                      1.0709   \n",
       "29   -147.1629    2.0306  1.910244e+10                      0.1931   \n",
       "...        ...       ...           ...                         ...   \n",
       "2288   40.8656    2.6827  1.103738e+10                      2.1550   \n",
       "2289   16.3415    1.5508  9.477980e+09                      0.9668   \n",
       "2290   10.4802    1.4497  1.049400e+11                      5.4443   \n",
       "2291   28.2384    1.5721  3.864052e+10                      1.6908   \n",
       "2292    8.3254    1.4238  9.366079e+10                      9.2317   \n",
       "2293    5.8835    0.9565  2.256389e+10                      0.9741   \n",
       "2294   51.8412    1.0986  3.241914e+09                      0.3984   \n",
       "2295   11.1287    1.1820  3.136000e+10                      6.5060   \n",
       "2296  185.9003    3.8403  7.954031e+09                      0.1718   \n",
       "2297   11.2160    2.0451  3.492564e+10                      4.3066   \n",
       "2298   68.1832    2.0664  1.859444e+10                      2.0794   \n",
       "2299    4.1307    0.9983  1.365560e+11                      0.9858   \n",
       "2300    5.6856    0.9048  6.336115e+10                      0.9619   \n",
       "2301   15.6061    1.2347  6.502400e+09                      4.2274   \n",
       "2302   45.4442    2.4167  2.015200e+10                      2.3701   \n",
       "2303   56.2462    1.7449  1.292000e+10                      1.5410   \n",
       "2304   10.4850    1.2829  9.124200e+09                      3.4474   \n",
       "2305    6.3967    0.9710  9.360000e+10                      2.6959   \n",
       "2306    7.7767    1.0222  3.052800e+10                      1.7877   \n",
       "2307   23.6462    1.4041  4.250400e+10                      1.7129   \n",
       "2308   15.4099    1.0875  1.068389e+10                      3.8366   \n",
       "2309   30.8968    1.6511  3.486360e+10                      2.0802   \n",
       "2310    4.5419    0.9527  1.043218e+11                      0.9647   \n",
       "2311  363.8465    0.8932  1.099975e+10                      0.3653   \n",
       "2312   14.2327    3.7462  1.611015e+10                     10.7319   \n",
       "2313   25.0848    4.2323  2.274800e+10                     10.7833   \n",
       "2314   59.4849    1.6392  2.281400e+10                      1.2960   \n",
       "2315   39.5523    4.0052  1.702434e+10                      3.3440   \n",
       "2316   52.5408    2.4646  3.287910e+10                      2.7444   \n",
       "2317   14.2203    1.4103  5.911086e+10                      2.0383   \n",
       "\n",
       "      du_return_on_equity            ev  earnings_per_share       revenue  \\\n",
       "0                 14.9403  1.211445e+12              2.0100  2.070140e+10   \n",
       "1                  7.8656  3.002521e+11              0.3260  2.930837e+10   \n",
       "2                 -0.5943  7.705178e+08             -0.0060  1.167983e+07   \n",
       "3                 14.6170  2.800916e+10              0.3500  9.189387e+09   \n",
       "4                 10.9097  8.124738e+10              0.2710  8.951453e+09   \n",
       "5                  7.7394  6.603403e+10              0.0974  4.388376e+10   \n",
       "6                 10.3965  5.651179e+10              0.6000  7.303544e+09   \n",
       "7                 -1.0375  4.363236e+09             -0.0059  6.263080e+07   \n",
       "8                  3.7845  2.184636e+10              0.3197  1.466188e+09   \n",
       "9                 20.7633  2.789761e+10              0.9372  1.862916e+09   \n",
       "10                21.1151  5.384610e+10              1.3700  2.523304e+10   \n",
       "11                 0.3275  6.249918e+09              0.0045  9.969418e+07   \n",
       "12                17.8649  4.307166e+10              1.2400  7.741652e+09   \n",
       "13                17.6640  2.246767e+10              0.2538  2.004355e+09   \n",
       "14                 9.2005  1.462845e+10              0.2170  6.200943e+09   \n",
       "15                34.1465  5.657357e+10              1.4400  5.628272e+09   \n",
       "16                23.1428  1.880408e+10              2.7168  8.094817e+08   \n",
       "17                 7.0257  3.721716e+10              0.1900  1.960655e+10   \n",
       "18                -3.1988  5.262950e+09             -0.0360  7.971350e+08   \n",
       "19                12.3670  4.926185e+10              0.7400  5.203284e+10   \n",
       "20                25.6552  1.250695e+11              1.3388  6.407461e+10   \n",
       "21                 5.9695  1.176176e+10              0.1900  1.828170e+09   \n",
       "22                -0.5469  2.076518e+10             -0.0300  6.775925e+08   \n",
       "23                 2.8371  9.980410e+10              0.1500  1.077702e+11   \n",
       "24                 6.7973  2.643903e+09              0.2300  1.211364e+09   \n",
       "25                -8.9859  5.997285e+10             -0.1600  8.514637e+09   \n",
       "26                 3.0930  2.758447e+10              0.2311  1.315053e+09   \n",
       "27                 5.6005  1.209052e+10              0.1412  1.350950e+09   \n",
       "28                 1.2462  2.029325e+10              0.0500  8.460434e+08   \n",
       "29                 0.3771  3.216635e+10              0.0142  5.081889e+09   \n",
       "...                   ...           ...                 ...           ...   \n",
       "2288               4.7236  1.709767e+10              0.1800  4.807351e+09   \n",
       "2289               2.4190  2.099918e+10              0.1000  9.909288e+08   \n",
       "2290              12.2884  1.902480e+11              0.5237  2.003511e+10   \n",
       "2291               4.8682  9.582884e+10              0.2611  3.586083e+09   \n",
       "2292              13.6114  1.184101e+11              0.5900  3.347880e+10   \n",
       "2293              13.0935  3.298547e+11              1.0000  6.807475e+09   \n",
       "2294               0.6477  5.554566e+09              0.0300  1.211764e+09   \n",
       "2295               8.6546  4.024084e+10              0.1700  5.833988e+09   \n",
       "2296               0.3902  1.199231e+10              0.0050  3.497481e+08   \n",
       "2297              13.0096  7.009119e+10              0.4300  3.910035e+10   \n",
       "2298               2.4527  2.523459e+10              0.0600  7.246929e+09   \n",
       "2299              20.8150  2.940780e+12              1.6300  6.352200e+10   \n",
       "2300              16.5592  1.107488e+12              1.1900  2.036172e+10   \n",
       "2301               6.1919  1.057695e+10              0.2485  2.699640e+09   \n",
       "2302               4.9005  3.307286e+10              0.1900  1.926169e+09   \n",
       "2303               3.0744  2.384706e+10              0.1100  9.885376e+08   \n",
       "2304               9.6124  1.977319e+10              0.2200  4.877658e+09   \n",
       "2305              11.4862  5.459076e+11              0.3600  3.939264e+11   \n",
       "2306              10.0869  1.738639e+11              0.3001  8.830155e+10   \n",
       "2307               4.0172  9.416246e+10              0.2400  4.512502e+09   \n",
       "2308               6.3517  1.763364e+10              0.1577  2.164358e+10   \n",
       "2309               4.4486  7.087203e+10              0.2800  2.841977e+09   \n",
       "2310              18.4875  2.206194e+12              0.4700  4.437800e+10   \n",
       "2311               0.6250  1.855021e+10              0.0169  2.217780e+09   \n",
       "2312              19.8905  1.930740e+10              0.9100  7.766650e+09   \n",
       "2313              15.4895  2.784450e+10              0.8849  1.148170e+10   \n",
       "2314               2.4512  3.810122e+10              0.0900  1.731713e+09   \n",
       "2315               8.0679  2.420817e+10              0.2200  1.789082e+10   \n",
       "2316               2.9202  3.883803e+10              0.1210  6.465392e+09   \n",
       "2317               8.6179  2.020661e+11              0.2470  4.509872e+10   \n",
       "\n",
       "      total_expense  \n",
       "0      1.088254e+10  \n",
       "1      2.378348e+10  \n",
       "2      1.203008e+07  \n",
       "3      7.935543e+09  \n",
       "4      7.091398e+09  \n",
       "5      4.309226e+10  \n",
       "6      5.440678e+09  \n",
       "7      6.478477e+07  \n",
       "8      1.036862e+09  \n",
       "9      1.157644e+09  \n",
       "10     2.195510e+10  \n",
       "11     1.353823e+08  \n",
       "12     6.769161e+09  \n",
       "13     1.749637e+09  \n",
       "14     5.822510e+09  \n",
       "15     2.856714e+09  \n",
       "16     6.909116e+08  \n",
       "17     2.000223e+10  \n",
       "18     8.324849e+08  \n",
       "19     5.089869e+10  \n",
       "20     6.115836e+10  \n",
       "21     1.706704e+09  \n",
       "22     7.178339e+08  \n",
       "23     1.064462e+11  \n",
       "24     1.164179e+09  \n",
       "25     1.092820e+10  \n",
       "26     7.590626e+08  \n",
       "27     1.208451e+09  \n",
       "28     7.702186e+08  \n",
       "29     5.059580e+09  \n",
       "...             ...  \n",
       "2288   4.591748e+09  \n",
       "2289   1.012814e+09  \n",
       "2290   1.091727e+10  \n",
       "2291   2.121595e+09  \n",
       "2292   2.365943e+10  \n",
       "2293   3.173200e+09  \n",
       "2294   1.232360e+09  \n",
       "2295   3.951208e+09  \n",
       "2296   3.150987e+08  \n",
       "2297   3.654896e+10  \n",
       "2298   7.032199e+09  \n",
       "2299   2.854800e+10  \n",
       "2300   7.688770e+09  \n",
       "2301   2.309055e+09  \n",
       "2302   1.303996e+09  \n",
       "2303   7.196078e+08  \n",
       "2304   4.366540e+09  \n",
       "2305   3.759061e+11  \n",
       "2306   8.470008e+10  \n",
       "2307   2.796546e+09  \n",
       "2308   2.095985e+10  \n",
       "2309   1.682115e+09  \n",
       "2310   1.909800e+10  \n",
       "2311   2.194909e+09  \n",
       "2312   6.564619e+09  \n",
       "2313   1.041419e+10  \n",
       "2314   1.089783e+09  \n",
       "2315   1.749295e+10  \n",
       "2316   6.009007e+09  \n",
       "2317   4.132842e+10  \n",
       "\n",
       "[2318 rows x 9 columns]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = data.iloc[:,1:-2]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 5.95720000e+00,  1.18180000e+00,  8.52525509e+10, ...,\n",
       "         2.01000000e+00,  2.07014010e+10,  1.08825400e+10],\n",
       "       [ 7.02890000e+00,  1.58800000e+00,  8.41133582e+10, ...,\n",
       "         3.26000000e-01,  2.93083692e+10,  2.37834769e+10],\n",
       "       [-2.62746100e+02,  7.00030000e+00,  5.17045520e+08, ...,\n",
       "        -6.00000000e-03,  1.16798290e+07,  1.20300800e+07],\n",
       "       ...,\n",
       "       [ 3.95523000e+01,  4.00520000e+00,  1.70243430e+10, ...,\n",
       "         2.20000000e-01,  1.78908166e+10,  1.74929478e+10],\n",
       "       [ 5.25408000e+01,  2.46460000e+00,  3.28790988e+10, ...,\n",
       "         1.21000000e-01,  6.46539204e+09,  6.00900728e+09],\n",
       "       [ 1.42203000e+01,  1.41030000e+00,  5.91108572e+10, ...,\n",
       "         2.47000000e-01,  4.50987171e+10,  4.13284212e+10]])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 实例化转换器类\n",
    "transfer = VarianceThreshold()\n",
    "# 调用fit_transform 方法\n",
    "data_new = transfer.fit_transform( data )\n",
    "data_new"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<h3>相关系数计算演示</h3>\n",
       "<img src=\"1-07.jpg\">\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%html\n",
    "<h3>相关系数计算演示</h3>\n",
    "<img src=\"1-07.jpg\">"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<h3>相关系数特点</h3>\n",
       "<img src = \"1-08.jpg\">\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%html\n",
    "<h3>相关系数特点</h3>\n",
    "<img src = \"1-08.jpg\">\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "相关系数:\n",
      " (-0.004389322779936271, 0.8327205496564927)\n"
     ]
    }
   ],
   "source": [
    "# 应用\n",
    "from scipy.stats import pearsonr\n",
    "\n",
    "# 计算两个特征得相关系数\n",
    "r1 = pearsonr(data[\"pe_ratio\"],data[\"pb_ratio\"])\n",
    "print(\"相关系数:\\n\",r)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.9958450413136115, 0.0)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r2 = pearsonr(data[\"revenue\"],data[\"total_expense\"])\n",
    "r2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\"\"\"\n",
    "多个特征相关性很高\n",
    "    选取其中一个\n",
    "    加权求和\n",
    "    主成分分析\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 2000x800 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.figure(figsize=(20,8),dpi=100)\n",
    "plt.scatter( data[\"revenue\"],data[\"total_expense\"])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
